//: Playground - noun: a place where people can play

import UIKit

/**
*  1、类型 不确定 不能用 
*  2、类型 未初始化不能用
*  3、声明一个变量 并且指定类型 不能直接赋值nil
*/
//var str
//var str:String
//var str = nil
//var str:String = nil


//var str:String?
// 可选变量在变量声明的类型后面加?或者! ！为隐式访问
/**
*  1、访问可选类型 用if 判断式
*  if let unwrappedStr = str{}
*  2、 在可选类型后面加感叹号!
*  3、 在声明可选变量时将?变为! 可以在任何地方隐式访问变量，提前是变量部位nil，否则崩溃
*/

var str:String! = "Hello Swift by Tutorials!"

if let unwrappedStr = str{
    println("Unwrapped! \(unwrappedStr.uppercaseString)")
    println(unwrappedStr)
    println(str!)
    str = nil
}else{
    println("was nil")
}
str = "hahah"
str = str.uppercaseString
println(str)

str = nil
if str != nil{
    
}else{
    println("Was nil")
}

var maybeString: String? = "Hello Swift"

// 可选链  uppercase 仍然为 可选类型
let uppercase = maybeString?.uppercaseString;

println(uppercase)


/**
*  两种声明方式1、[Type] 2、Array<Type>
*/
//var array: [Int] = [1,2,3,4,5]

var array:Array<Int> = [1,2,3,4,5]
println(array[2])

array.append(6)

array.extend(2...10)

array.insert(8, atIndex: 0)

println(array.count)

for i in 1...16{
    array.removeAtIndex(0)
}

println(array)

//array.append("11")



